package cn.xzqwjw.taskmanager.service;

import cn.xzqwjw.taskmanager.domain.pojo.Task;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @author wjw
 */
public interface TaskService extends IService<Task> {

  /**
   * 添加工作任务
   *
   * @param task 要添加的工作任务对象
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String add(Task task);

  /**
   * 根据id删除工作任务，逻辑删除
   *
   * @param idTask 工作任务id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String delById(int idTask);

  /**
   * 修改工作任务
   *
   * @param task 要修改的工作任务对象
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String modifyAll(Task task);

  /**
   * 设置任务状态
   * type = "enabled" 修改启用状态
   * type = "finished" 修改完成状态
   * type = "status" 修改审核状态
   *
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String patchStatus(int idTask, String type, String status);

  /**
   * 根据id得到该工作任务所有信息
   *
   * @param id 要查询的id
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String queryById(int id);

  /**
   * 管理员分页获取所有工作任务
   * editorId=0 表示查询所有编辑的工作任务，editorId>0 表示查询某编辑的所有工作任务
   *
   * @param pageCurrent 当前页数
   * @param pageSize    每页记录数
   * @return 返回给 controller 用于输出 response 的 json 格式的字符串
   */
  String listPage(int pageCurrent, int pageSize);

}
